<https://postgrespro.ru/docs/postgrespro/12/intro-pgpro-vs-pg>

# 2. Различия между Postgres Pro Standard и PostgreSQL


Postgres Pro предоставляет наиболее актуальную версию PostgreSQL c дополнительными изменениями и расширениями. Этот продукт включает все новые возможности, реализованные компанией Postgres Professional, а также сторонние доработки, которые уже приняты сообществом PostgreSQL и попадут в новые версии PostgreSQL. Таким образом, пользователи Postgres Pro Standard получают ранний доступ к важным нововведениям и исправлениям.

> Примечание
Postgres Pro Standard предоставляется по следующей лицензии: https://postgrespro.ru/products/postgrespro/eula. Обязательно ознакомьтесь с условиями лицензии, прежде чем загружать и использовать Postgres Pro Standard.

Postgres Pro Standard отличают от PostgreSQL следующие усовершенствования:

* Улучшенный механизм проверки блокировок, не оказывающий отрицательного влияния на производительность.
* Улучшенная производительность при использовании множества временных таблиц в отдельных обслуживающих процессах и при большом количестве одновременных подключений.
* Увеличенная скорость и эффективность планирования для различных типов запросов.
* Уменьшенное потребление памяти при обработке сложных запросов со множеством таблиц.
* Добавление времени планирования в информацию, выводимую модулем auto_explain.
* Возможность замены нулевого байта заданным ASCII-символом при загрузке данных с помощью команды COPY FROM. (См. описание параметра nul_byte_replacement_on_import.)
* Использование ICU на всех платформах с целью обеспечить платформонезависимую сортировку для различных локалей. По умолчанию провайдер правил сортировки icu задействуется для всех локалей, за исключением C и POSIX. (См. Подраздел 22.2.2.)
* Реализация механизма PTRACK, позволяющего программе pg_probackup отслеживать изменения страниц при создании инкрементальных резервных копий.
* Согласованное чтение на ведомых серверах. (См. WAITLSN.)
* Поддержка чтения утилитой pg_controldata файлов pg_control от предыдущих версий PostgreSQL.
* Проверка совместимости кластера, позволяющая определить, совместима ли текущая версия Postgres Pro с определённым кластером, и понять, какие параметры влияют на совместимость, не запуская сервер. (См. описание параметров -z/-Z в postgres.)
* Возможность изменения параметров primary_conninfo, restore_command и primary_slot_name без перезапуска сервера.
* Повышенная отказоустойчивость в системах Windows.
* Расширенная поддержка редактирования вводимых команд в psql для Windows, реализованная с использованием WinEditLine.
* Унифицированная структура пакетов двоичных файлов для всех дистрибутивов Linux, упрощающая миграцию между ними и позволяющая устанавливать несколько различных продуктов на базе PostgreSQL совместно без каких-либо конфликтов. (См. Главу 16.)

Postgres Pro Standard также включает следующие дополнительные модули:

* Модуль dump_stat, позволяющий сохранять статистику данных при резервном копировании и восстановлении.
* Модуль fasttrun, который предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, что предотвращает разрастание каталога pg_class.
* Модуль fulleq, предоставляющий дополнительный оператор равенства для совместимости с Microsoft SQL Server.
* Модуль hunspell-dict, предоставляющий словари для ряда языков.
* Модуль jsquery реализует специальный язык запросов для эффективного, с использованием индексов, поиска в структурированных данных JSONB
* Служба мониторинга mamonsu, исполненная в виде агента Zabbix.
* Модуль mchar, предоставляющий дополнительный тип данных для совместимости с Microsoft SQL Server.
* Модуль online_analyze, привносящий набор функций, которые немедленно обновляют статистику в целевых таблицах после операций INSERT, UPDATE, DELETE или SELECT INTO в них.
* Пул соединений pgbouncer.
* Модуль pg_pathman предоставляет оптимизированный механизм секционирования, а также функции для создания и управления секциями. Начиная с Postgres Pro 12, использовать pg_pathman не рекомендуется. Применяйте вместо него реализованное в ванильной версии декларативное секционирование, описанное в Разделе 5.11.
* pg_probackup — менеджер резервного копирования и восстановления.
* Модуль pg_query_state, дающий возможность узнавать текущее состояние выполнения запросов в обслуживающем процессе.
* Утилита pg_repack для реорганизации таблиц.
* Модуль pg_tsparser — альтернативный анализатор текстового поиска.
* Модуль pg_variables, предоставляющий функции для работы с переменными различных типов.
* Модуль plantuner, добавляющий поддержку указаний для планировщика, подключающих или отключающих определённые индексы при выполнении запроса.
* Модуль shared_ispell, позволяющий разместить словари в общей памяти.
* Модуль sr_plan, позволяющий сохранять и восстанавливать планы запросов.
* Выпуски Postgres Pro Standard следуют за выпусками PostgreSQL, хотя иногда могут выпускаться чаще. Схема версионирования Postgres Pro Standard основана на схеме версионирования PostgreSQL и включает дополнительную цифру.